package com.ruirenyun.entity.constant;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by bchen on 2015/3/23.
 * 系统异常信息
 */
public enum SYS {


    E10001("未查询到任何数据"),
    E10002("系统异常"),
    E10003("重要参数缺失"),
    E10004("流文件异常"),
    E10005("流文件名为空"),
    E10006("图形验证码生成失败"),
    E10007("手机验证码发送失败，请稍后重试"),
    E10008("请求方法不匹配"),
    E10009("参数缺失或数据提交方式错误,请检查参数或尝试改变数据提交方式"),
    E10010("数据异常"),

    E10012("请求体为空"),
    //参数校验
    VAL10001("参数校验失败"),
    VAL10002("参数不能为空"),
    VAL10003("手机号格式不正确"),
    VAL10004("时间必须大于等于今天"),
    VAL10005("时间不能为空"),
    VAL10006("头尾长度不能超过字符串总长度"),
    VAL10007("金额必须为正数"),

    SMS001("发送短信验证码失败"),
    SMS002("验证码输入不正确"),
    SMS003("验证码过期"),
    SMS004("令牌错误"),
    SMS005("请休息一会再发"),
    SMS006("请输入图形验证码"),
    SMS007("图形验证码输入不正确"),
    SMS008("手机验证码已发送，请注意查收"),
    SMS009("短信发送失败"),


    L10000("未登录"),
    L10001("账号异常，请联系客服"),
    L10002("验证码错误"),
    L10003("账号不存在"),
    L10004("账号密码不符"),
    L10005("两次密码不一致"),
    L10006("未拥有该角色"),
    L10007("解析jscode失败"),

    MINE10001("记录不存在"),
    MINE10002("简历文件过大，请调整文件大小"),
    MINE10003("简历解析失败"),
    MINE10004("参加工作年月异常，请重新选择"),
    MINE10005("仅支持docx或pdf格式的简历"),

    SUP10001("生成图片出错"),
    SUP10002("正在进行其他动账操作，请稍后再试"),
    SUP10003("账户余额不足"),
    SUP10004("添加失败，该用户已绑定其他供应商"),
    SUP10005("身份证识别失败，请手动输入"),

    MATCH0001("人岗匹配失败"),

    TS0001("最多可上传8张图片证明"),
    HR0001("已投递该职位"),
    HR0002("简历信息不全，请完善信息"),
    HR0003("简历不完善是否继续投递"),
    HR0004("用户已申请商户加盟"),
    HR0005("身份证号格式错误"),
    HR0006("姓名最多输入10个字符"),
    HR0007("该职位已收藏"),
    HR0008("供应商用户不存在"),
    HR0009("手机号格式错误"),
    HR0010("报备失败，用户已投递"),
    HR0011("您已提交过申请，请等待工作人员审核"),


    SUCCESS("操作成功"),
    ERROR("操作失败"),
    ERROR001("系统异常");


    private String value;
    private Map<String, Object> msg;


    SYS(String value) {
        this.value = value;
        this.msg = msgMap();
    }

    public String getValue() {
        return value;
    }

    public Map<String, Object> msgMap() {
        Map<String, Object> resultMap = new HashMap<>();
        resultMap.put("code", this);
        resultMap.put("msg", value);
        resultMap.put("data", null);
        return resultMap;
    }

    public Map<String, Object> msgMap(Object object) {
        Map<String, Object> resultMap = new HashMap<>();
        resultMap.put("code", this);
        resultMap.put("msg", value);
        resultMap.put("data", object);
        return resultMap;
    }
}
